/*
 * @lc app=leetcode.cn id=121 lang=typescript
 *
 * [121] 买卖股票的最佳时机
 */

// @lc code=start

//  思路：
//  记录最小的值，后续的每一天保持利润最大

//  复杂度：O(n) O(1)

function maxProfit(prices: number[]): number {
    let profit = 0, min = Infinity
    for (let i = 0; i < prices.length; i++) {
        min = Math.min(min, prices[i])
        profit = Math.max(profit, prices[i] - min)
    }
    return profit
};
// @lc code=end

console.log(maxProfit([7, 1, 5, 3, 6, 4]));  // 5
console.log(maxProfit([7, 6, 4, 3, 1]));     // 0
